home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / tools / czesc_3 / phoonsrc / amiga.h < prev    next >
C/C++ Source or Header  |  1994-02-23  |  2KB  |  68 lines

  1. /*
  2.  *  amiga.h
  3.  *
  4.  *  Author: Tomi Ollila <too@cs.hut.fi>
  5.  *
  6.  *  Created: Sun Jul 05 15:03:40 1992 too
  7.  *  Last modified: Thu Feb 24 11:57:48 1994 too
  8.  *
  9.  */
  10. #ifndef _AMIGA_H_
  11. #define _AMIGA_H_
  12.  
  13. #include <exec/types.h>
  14. #include <dos/rdargs.h>
  15.  
  16. BOOL    am_OpenLibraries(void);
  17. int    am_CloseLibraries(int);
  18. BOOL    am_GetScreenSize(int *, int *);
  19. char *    am_LoadFullmoon(int *, int *, char *);
  20. void    am_MakeIFFile(int, int, char *, int);
  21.  
  22. void    Printf(const char * fmt, ...);
  23.  
  24. /*
  25.  * ReadArgs stuff (etc)
  26.  */
  27. #define TEMPLATE \
  28. "-f=FILE,-g=POSITION/K,-d=DOUBLE/S,-s=SHADE/S,-r=REVERSE/S,-h=GMTOFFSET/N"
  29. enum { CI_FILE, CI_POSITION,
  30.      CI_DOUBLE, CI_SHADE, CI_REVERSE, CI_GMTOFFSET, CI_SIZE };
  31. extern struct RDArgs * rdargs;
  32. extern LONG args[];
  33. /*** other extern variables ***/
  34. extern const char usage[];
  35. extern WORD gmtoffset;
  36.  
  37. /*
  38.  * Memory for bitmaps is longword aligned so we can use longword copy.
  39.  */
  40. #define BitmapSize(w,h) (((((w) + 31) / 32) * 4) * (h))
  41.  
  42. static __inline void 
  43. FreeVec (APTR memoryBlock)
  44. {
  45.   extern struct ExecBase * SysBase;
  46.   register struct ExecBase *a6 __asm("a6") = SysBase;
  47.   register APTR a1 __asm("a1") = memoryBlock;
  48.   __asm __volatile ("jsr a6@(-0x2b2)"
  49.   : /* no output */
  50.   : "r" (a6), "r" (a1)
  51.   : "a0","a1","d0","d1", "memory");
  52. }
  53.  
  54. #define BP(fmt, args...) \
  55.   do { \
  56.      Printf("** " __FILE__ ":%ld: " fmt, __LINE__, ## args); \
  57.      { \
  58.      register struct ExecBase *a6 __asm("a6") = SysBase; \
  59.      register unsigned long d0 __asm("d0") = (1<<14); \
  60.          __asm __volatile ("jsr a6@(-0x13e)" \
  61.                : /* no output */ \
  62.                : "r" (a6), "r" (d0) \
  63.                : "a0","a1","d0","d1", "memory"); \
  64.      } \
  65.   } while (0)
  66.  
  67. #endif /* _AMIGA_H_ */
  68.